<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>数字的补数</title>
  </head>
  <body>
    <script>
      // 给你一个 正 整数 num ，输出它的补数。补数是对该数的二进制表示取反。

      // 示例 1：
      // 输入：num = 5
      // 输出：2
      // 解释：5 的二进制表示为 101（没有前导零位），其补数为 010。所以你需要输出 2 。

      // 来源：力扣（LeetCode）
      // 链接：https://leetcode-cn.com/problems/number-complement
      // 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
      // -------------------------------------
      var findComplement = function (num) {
        let n = num.toString(2);
        let nLen = n.length;
        let m = "";
        for (let i = 0; i < nLen; i++) {
          if (n[i] === "1") {
            m += 0;
          } else {
            m += 1;
          }
        }
        //parseInt(m,2);
        return parseInt(m, 2);
      };
      findComplement(5);
    </script>
  </body>
</html>
